// ListItem.cpp: implementation of the CListItem class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "../../Include/Bse/List.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CListItem::CListItem()
{
	m_pNextItem = NULL;
	m_pPrevItem = NULL;
	m_pList = NULL;
	m_nIndex = -1;
}

CListItem::~CListItem()
{

}

bool CListItem::Equals(CListItem *pItem)
{
	if (this == pItem)
		return true;
	else
		return false;
}

CList* CListItem::GetList()
{
	return m_pList;
}

void CListItem::RemoveFromList()
{
	if (!m_pList)
		return;
	
	if (m_pNextItem)
		m_pNextItem->m_pPrevItem = m_pPrevItem;
	else
		m_pList->m_pTail = m_pPrevItem;
	
	if (m_pPrevItem)
		m_pPrevItem->m_pNextItem = m_pNextItem;
	else
		m_pList->m_pHead = m_pNextItem;
	
	m_pList->m_nCount--;
	
	delete this;
}

void CListItem::OutputToFile(FILE *pFile)
{
	fprintf(pFile,"0x%08x",this);
}

void CListItem::OutputToScreen()
{
	printf("0x%08x",this);
}

int CListItem::GetIndex()
{
	return m_nIndex;
}

bool CListItem::BelongsTo(CList *pList)
{
	if (!pList)
		return false;

	if (m_pList == pList)
		return true;
	else
		return false;
}
